Amplify で CodeCommit を利用する際 PowerUserAccess ではエラーになってしまうので解決策を教えてください

Amplify で CodeCommit を利用する際 PowerUserAccess ではエラーになってしまうので解決策を教えてください

Clock Icon2022.05.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Here is the English version

困っていた内容

PowerUserAccess を付与した IAM ユーザーが Ampify コンソールでアプリケーションを作成する際に、Git リポジトリとして CodeCommit を選択しましたがエラーが発生してしまいました。

User: arn:aws:sts::012345678901:assumed-role/user-name is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::012345678901:role/service-role/AmplifyCodeCommitRole-45ff8cb8-0db9-4bc8-9247-46e527d17fbc because no identity-based policy allows the iam:CreateRole action

上記エラーの解決策を教えてください。

どう対応すればいいの?

PowerUserAccess に加えて、以下の権限を付与してください。

  • CreatePolicy
  • CreateRole
  • AttachRolePolicy
  • PassRole

Amplify コンソールでアプリケーションを作成する際、以下のような IAM ポリシーと IAM ロールが作成され、Amplify のサービスロールになります。

  • AmplifyCodeCommitPolicy-adb0db8d-df57-49bf-b038-817081c1742b
  • AmplifyCodeCommitRole-adb0db8d-df57-49bf-b038-817081c1742b

上記の IAM ポリシーと IAM ロールを作成し、Amplify のサービスロールとするためには上述の 4 つの IAM に関する権限が必要になります。

しかしながら、PowerUserAccess には IAM に関する権限が付与されていないため、PowerUserAccess のみではエラーが発生します。

やってみた

実際に PowerUserAccess だけのパターンと、PowerUserAccess + 4 つの権限のパターンを試してみました。

なお、CodeCommit にはあらかじめアプリを push してあります。

PowerUserAccess だけのパターン

Amplify コンソールでアプリケーションを作成したところ、以下のエラーが発生しました。

2024-10-01_10h34_51

bvwp28wbcptxpjspg67l

PowerUserAccess + 4 つの権限のパターン

PowerUserAccess に加えて、以下の権限を付与します。

  • CreatePolicy
  • CreateRole
  • AttachRolePolicy
  • PassRole

今回は以下のような IAM ポリシーを作成して対象の IAM ユーザーにアタッチしました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "iam:CreatePolicy",
        "iam:PassRole",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": [
        "arn:aws:iam::{Accout-ID}:role/*",
        "arn:aws:iam::{Accout-ID}:policy/*"
      ]
    }
  ]
}

2024-10-01_10h37_57

再度 Amplify アプリケーションをコンソールからデプロイすることで、アプリケーションの作成に成功しました。

2024-10-01_10h40_47

IAM ポリシーと IAM ロールも作成されており、アプリケーションにも紐づいています。

2024-10-01_10h42_41

2024-10-01_10h41_59

2024-10-01_10h43_30

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.